2020422simulink 模块(二) | 您所在的位置:网站首页 › simulink 总线 › 2020422simulink 模块(二) |
Matlab 模块 根据Simulink运行机制,每个采样点会调用一次MATLAB Function的函数,两次调用之间,同一个变量的两次计算的终值如何传递到当前计算周期是一个问题。使用persistent 变量实现函数退出和进入时内部变量值的保持。每次调用fcn 时依据上次 Matlab Function 内部M 语言有严格要求:变量必须要给初始值以及维度,变量类型以及实虚性 function y = fcn(u) %# codegen persistent sum_val if isempty(sum_val) sum_val=0; end sum_val=sum_val+u; y = sum_val;persistent变量时定义在某个函数内的变量类型,可在函数调用的不同次数间保持上一次退出该函数的值。它同global全局变量的类似之处在于MATLAB为他们创建永久数据区域,不同之处在于它只能被声明它的函数内部识别,目的是免除 此类变量被其他函数或命令修改值而造成用户无法确保其值得困扰。 声明persistent变量时它刚被创建,其内容为空值[ ]。 使用persistent变量需要注意: persistent变量不能作为函数的输入输出参数,否则会报错。persistent变量不能同当前工作空间中已经存在的变量同名,否则会报错。persistent变量不能声明在Command Window中,只能在函数中声明。 |
CopyRight 2018-2019 实验室设备网 版权所有 |